var app = getApp();
var config = require("config");

// 待发送的数据堆栈
var stackData = []
//发送数据
function sendSocketData(data) {
  stackData.push(data)
  wx.onSocketOpen(function(res) {
    console.log('WebSocket连接已打开！')
    for (var i = 0; i < stackData.length; i++) {
      wx.sendSocketMessage({
        data: data,
        success: function(res) {
          
        }
      });
    }
  })
  wx.onSocketError(function(res) {
    connect()
  })
}

//处理服务器推送的内容
function onSocketMessage() {
  wx.onSocketMessage(function(res) {
    if (!res || !res.data || res.data.length < 1) {
      return false
    }
    return res
  })
}

/**
 * 创建连接
 */
function connect() {
  wx.connectSocket({
    url: config.socketHost,
  });
}


/**
 * 将字符串转化为二进制的数据
 **/
function strToBinary(str) {
  var result = [];
  var list = str.split("");
  for (var i = 0; i < list.length; i++) {
    if (i != 0) {
      //加空格，分割二进制
      result.push(" ");
    }
    var item = list[i];
    //将字符串转化为二进制数据
    var binaryStr = item.charCodeAt().toString(2);
    result.push(binaryStr);
  }
  return result.join("");
}

/**
 * 二进制转为字符串
 */
function binaryToStr(str) {
  var result = [];
  //
  //通过空格来分开二进制的字符
  var list = str.split(" ");
  for (var i = 0; i < list.length; i++) {
    var item = list[i];
    //转为asciicode 码
    var asciiCode = parseInt(item, 2);
    //转为文字
    var charValue = String.fromCharCode(asciiCode);
    //添加到集合中
    result.push(charValue);
  }
  //返回结果
  return result.join("");
}